草庐IT

C++ 异常开销

全部标签

c# - 如何确定是否正在处理 .NET 异常?

我们正在研究C#中的一种编码模式,在该模式中,我们希望对一个特殊类使用“using”子句,该类的Dispose()方法根据“using"正文正常退出或异常退出。据我所知,CLR会跟踪当前正在处理的异常,直到它被“捕获”处理程序使用为止。但是,尚不完全清楚此信息是否以任何方式公开以供代码访问。您知道它是否存在吗?如果存在,如何访问它?例如:using(varx=newMyObject()){x.DoSomething();x.DoMoreThings();}classMyObject:IDisposable{publicvoidDispose(){if(ExceptionIsBeingH

c# - linq where 子句和计数导致空异常

下面的代码有效,除非p.School.SchoolName结果为null,在这种情况下它会导致NullReferenceException。if(ExistingUsers.Where(p=>p.StudentID==item.StaffID&&p.School.SchoolName==item.SchoolID).Count()>0){//Dostuff.}ExistingUsers是一个用户列表:publicListExistingUsers;这里是堆栈跟踪的相关部分:System.NullReferenceException:Objectreferencenotsettoanin

c# - 哪些类型的异常不要捕获?

很多时候,有人提到只捕获我可以处理的异常(抛出、包装和/或记录,或执行一些其他操作)。哪些异常不能处理?这和不该抓是不是一样的意思?我知道不应该捕获可能表示对象引用为空的异常,因为它们是编程错误而不是用户引发的。还有其他例子吗?另一个是ExecutionEngineException。此外,catchblock中的操作过程是否总是在重新抛出、包装/重新抛出和记录之间?是否存在需要在catchblock中执行其他操作的情况?谢谢 最佳答案 通常的建议适用,只捕获你能处理的。框架内有一个名为IsCriticalException的实用函

c# - 在匿名类型的属性名称中使用异常(exception)字符(减号)

问题我正在尝试使用名为data-maxchars的属性声明一个匿名类型.因为减号是一个运算符,它将我想要的属性名称降级(?)为一个操作,我得到一个编译错误:Invalidanonymoustypememberdeclarator.我知道我可以使用@转义保留字,但我不知道是否有任何方法可以转义减号。objectattributes=(object)new{@class="foo"}//OK起源匿名类型作为object传递TextAreaExtensions.TextArea的参数:.这会生成一个具有传递属性的输入。我想使用JS渐进增强来限制用户可以插入的字符数。所以我正在使用data-我

c# - 如何在设计时避免 XAML 代码中出现 "object reference not set to an instance of an object"异常?

我自己设计的wpf用户控件有问题。问题是,当我在我的程序中实现用户控件时,在设计时XAML代码中出现objectreferencenotsettoaninstanceofanobject异常。设计师向我展示了以下信息:atMicrosoft.Expression.Platform.InstanceBuilders.InstanceBuilderOperations.InstantiateType(Typetype,BooleansupportInternal)atMicrosoft.Expression.Platform.InstanceBuilders.ClrObjectInstan

c# - AppDomain,处理异常

我正在开发一个大型应用程序,其中包含许多较小的插件/应用程序。它们不够大,不能成为一个完整的进程,但又太小,无法在线程中、在一个进程下运行,而且我希望它基于插件。如果该插件的更新版本可用,则应将其卸载、更新并重新启动。在我寻找解决方案的过程中,我偶然发现了神奇的词AppDomain,我引用了:"Useapplicationdomainstoisolatetasksthatmightbringdownaprocess.IfthestateoftheAppDomainthat'sexecutingataskbecomesunstable,theAppDomaincanbeunloadedw

c# - 使用最小起订量抛出异常模拟 IMemoryCache

我正在尝试模拟IMemoryCache最小起订量。我收到此错误:Anexceptionoftype'System.NotSupportedException'occurredinMoq.dllbutwasnothandledinusercodeAdditionalinformation:Expressionreferencesamethodthatdoesnotbelongtothemockedobject:x=>x.Get(It.IsAny())我的模拟代码:namespaceIag.Services.SupplierApiTests.Mocks{publicstaticclassM

c# - .Net Dictionary<int,int> 在大约 6,000,000 个条目处出现内存不足异常

我正在使用Dictionary存储图像中颜色出现的频率,其中键是颜色(作为int),值是颜色在图像中出现的次数。当我处理更大/更彩色的图像时,这本词典会变得非常大。我在大约6,000,000个条目时遇到内存不足异常。这是在32位模式下运行时的预期容量吗?如果是这样,我能做些什么吗?有哪些替代方法可以跟踪这些不会耗尽内存的数据?作为引用,下面是循环遍历位图中的像素并将频率保存在Dictionary中的代码:Bitmapb;//=something...Dictionarycount=newDictionary();System.Drawing.Colorcolor;for(inti=0;

c# - 静态构造函数会导致性能开销?

最近在dotnetpearls.com上阅读一篇文章here说静态ctors会受到大量的性能影响。不明白为什么? 最佳答案 我认为在大多数用例中“大量”是一种夸大其词。由于beforefieldinitflag的存在/不存在,拥有静态构造函数(即使它什么也不做)会影响类型初始化时间.当你有一个静态构造函数时,对时间有更严格的保证。对于大多数代码,我认为这没有太大区别-但如果您是紧密循环并访问类的静态成员,则可能会有所不同。就我个人而言,我不会太担心它-如果您怀疑它与您的真实应用程序相关,那么测试它而不是猜测。微基准测试很可能会夸大此

c# - 如果没有通过 using block 实例化实现 IDisposable 的类是否有方法抛出异常?

我发现了一些有潜在危险的类,如果它们不能被实例化,那么它们的危险性会小得多,除非它们在using语句中被实例化。我想知道是否有办法强制类只以这种方式实例化。(我知道IL会编译出什么,这就是为什么我不太确定这是否可能)干杯,菲尔。 最佳答案 没有办法强制执行它,但您可以构建一个customCodeAnalysisrule标记它。 关于c#-如果没有通过usingblock实例化实现IDisposable的类是否有方法抛出异常?,我们在StackOverflow上找到一个类似的问题: